/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mx.its.dsw2.view;

import java.util.ArrayList;
import java.util.List;
import java.util.Locale.Category;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.event.ActionEvent;
import mx.its.dsw2.biblioteca.Categoria;
import mx.its.dsw2.biblioteca.Libro;
import mx.its.dsw2.biblioteca.bl.AutorBl;
import mx.its.dsw2.biblioteca.bl.AutorBlLocal;
import mx.its.dsw2.biblioteca.bl.CategoriaBlLocal;
import mx.its.dsw2.biblioteca.bl.LibroBlLocal;
import mx.its.dsw2.biblioteca.dao.CategoriaDaoLocal;

/**
 *
 * @author Piter
 */
@ManagedBean
@SessionScoped
public class BookBean {
    @EJB
    private CategoriaBlLocal categoriaBl;
    
    @EJB
    private AutorBlLocal autorBl;
    
    @EJB
    private LibroBlLocal libroBl;
    
    
    private List<Libro> lista;
    private List<Categoria>listaCategoria;
    private String accion;
    private Libro book;
    private int authorSeleccionado;
       private int categorySeleccionado;

    /**
     * Creates a new instance of BookBean
     */
    public BookBean() {
        book=new Libro();
    }

    public List<Libro> getLista() {
        lista=libroBl.getAll();
        return lista;
    }
    public String marrirris() {
        String h = "quiero ir a chapala";
        if (accion.equalsIgnoreCase("Nuevo")) {
            h = "LibroLista";
        } else if (accion.equalsIgnoreCase("Editar")) {
            h = "LibroListaCrearEditar";
        } else if (accion.equalsIgnoreCase("Eliminar")) {
            h = "LibroLista";
        }

        accion = "";
        return h;
    }

    public Libro getBook() {
        return book;
    }

    public void setBook(Libro book) {
        this.book = book;
    }

    public int getAuthorSeleccionado() {
        return authorSeleccionado;
    }

    public void setAuthorSeleccionado(int authorSeleccionado) {
        this.authorSeleccionado = authorSeleccionado;
    }

    public int getCategorySeleccionado() {
        return categorySeleccionado;
    }

    public void setCategorySeleccionado(int categorySeleccionado) {
        this.categorySeleccionado = categorySeleccionado;
    }

    public List<Categoria> getListaCategoria() {
        return listaCategoria;
    }
    
    
    
    
    //-----------------------------ACCION-------------------------
    public String procesarSeleccion(){
        book.setIdAutor(autorBl.findById(authorSeleccionado));
        //List<Categoriade> cat=new ArrayList<Categoria>();
       
          //  cat.add(categoriaBl.find(categorySeleccionado));
        
        
        //book.setCategoriaDeLibroList();
        return "LibroConfirmar";
    }
    public void preparNuevo(ActionEvent evt) {
        listaCategoria=new ArrayList<Categoria>();
        book = new Libro();
        accion="Nuevo";
    }
     public void prepararEditar(ActionEvent evt) {
//        System.out.println(evt.getComponent().getClientId());
//        String arr[]= evt.getComponent().getClientId().split(":");
//        String id=arr[2];
//        int index=Integer.parseInt(id);
//        
        int index = Integer.parseInt(evt.getComponent().getClientId().split(":")[2]);
        book = lista.get(index);
        listaCategoria=categoriaBl.getListByBook(book);
        accion="editar";
    }
    
    public void eliminar(ActionEvent evt){
        accion="eliminar";
        int index = Integer.parseInt(evt.getComponent().getClientId().split(":")[2]);
        book = lista.get(index);
        
    }
     public String procesarAccion() {
        if (accion.equalsIgnoreCase("Nuevo")) {
            libroBl.Register(book,listaCategoria);
        } else if (accion.equalsIgnoreCase("Editar")) {
            libroBl.modify(book,listaCategoria);
        }else if (accion.equalsIgnoreCase("Eliminar")){
             libroBl.delete(book);
        }

        accion = "";
        return "LibroLista";
    }
    public void agregarCategoria(ActionEvent evt){
        listaCategoria.add(categoriaBl.findById(categorySeleccionado));
    }
    public void eliminar2(ActionEvent evt){
       int index = Integer.parseInt(evt.getComponent().getClientId().split(":")[3]);
        listaCategoria.remove(index);
        
    }
}
